﻿Namespace Client
    <Serializable()> _
    Public Enum MessageTypeEnum
        ChanMsg
        Kicked
        Topic
        UserJoin
    End Enum
    ''' <summary>
    ''' All clients wishing to use MChatEngine as their backend must implement all function in IChannelWindow in their ChannelWindow class.
    ''' </summary>
    ''' <remarks></remarks>
    Public Interface IChannelWindow
        Sub Disconnect()
        Function RenderMessage(ByVal Message As String, ByVal ChannelName As String, ByVal User As String) As String
        Sub Kicked(ByVal E As Connections.KickedEventArgs)
        Sub NewMessage(ByVal User As String, ByVal Message As String, ByVal ChannelName As String)
        Sub UserJoined(ByVal User As String, ByVal ChannelName As String)
        Sub ChangeTopic(ByVal Topic As String, ByVal ChannelName As String)
        Sub LoadNickList(ByVal Channel As String, ByVal E As Connections.NickListRecvArgs)
        Sub ChannelModeChanged(ByVal E As Connections.ChannelModeArgs)
        Sub UserQuit(ByVal User As String, ByVal Reason As String)
        Sub PartFromChannel(ByVal User As String, ByVal Channel As String)
        Sub ChangeUserMode(ByVal E As Connections.UserModeArgs)
        Sub NewQuery(ByVal User As String, ByVal FirstMsg As String, ByVal IsFirstMessage As Boolean)
        Sub ChangeNick(ByVal PrevNick As String, ByVal NewNick As String)
        Sub HandleNotice(ByVal E As Connections.GenericEventArgs)
    End Interface
End Namespace